//
//  ExtensionUserDefaults.swift
//  StoreManage
//
//  Created by MC on 2017/12/18.
//  Copyright © 2017年 MC. All rights reserved.
//

import UIKit
public extension UserDefaults {
    
        // 登录信息
    struct LoginInfo: UserDefaultsSettable {
        enum defaultKeys: String {
            case userId          // 用户Id
            case userName        // 用户账号(手机号)
            case nickName        // 昵称
            case picture         // 头像
            case persionId       // 身份Id
            case token           // 接口token
            case storeId         // 店铺Id
            case storeName       // 店铺名称
            case logoPath        // 店铺logo
            case isBill          // 是否开票  0不开，1开
            case level           // 用户身份登记   100-149分销员 200-249店员  300-349店长
            case levelName       // 用户等级名称
            }
        }
    
    // 版本信息
    struct Version : UserDefaultsSettable {
        enum defaultKeys: String {
            case version
        }
    }
    
    // 经纬度
    //    struct LocationInfo: UserDefaultsSettable {
    //        enum defaultKeys: String {
    //            case latitude
    //            case longitude
    //        }
    //    }
}


protocol UserDefaultsSettable {
    associatedtype defaultKeys: RawRepresentable
}

extension UserDefaultsSettable where defaultKeys.RawValue==String {
    static func set(value: Any, forKey key: defaultKeys) {
        let aKey = key.rawValue
        UserDefaults.standard.set(value, forKey: aKey)
    }
    static func get(forKey key: defaultKeys) -> String? {
        let aKey = key.rawValue
        
        
        var value = UserDefaults.standard.string(forKey: aKey)
        
        if value == nil {
            value = "0"
        }
        
        return value
    }
}

